package com.yxinsur.imc.business.form;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.business.domain.ImcContractFile;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * 合同表单数据
 *
 * @author imc
 * @date 2021-03-29
 */
@Data
@ToString
public class ContractForm
{
    private static final long serialVersionUID = 1L;
    /** $column.columnComment */
    private Long id;

    /** 供应商ID */
    @ApiModelProperty("供应商ID")
    private Long repoSupplierId;

    /** 协议名称 */
    @ApiModelProperty("协议名称")
    private String contractName;

    /** 合同开始日期(含) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("合同开始日期(含)")
    private Date contractStartDate;

    /** 合同截止日期(含) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("合同截止日期(含)")
    private Date contractEndDate;

    /** 投保日期是否和结算月为同月(-1上月，0同月,1次月) */
    @ApiModelProperty("投保日期是否和结算月为同月(-1上月，0同月,1次月)")
    private Integer applyWithSameMonth;

    /** 投保截止日期 */
    @ApiModelProperty("投保截止日期")
    private String applyEndDate;

    /** 承保日期是否和结算月为同月(-1上月，0同月,1次月) */
    @ApiModelProperty("承保日期是否和结算月为同月(-1上月，0同月,1次月)")
    private Integer insureWithSameMonth;

    /** 承保截止日期 */
    @ApiModelProperty("承保截止日期")
    private String insureEndDate;

    /** 回执日期是否和结算月为同月(-1上月，0同月,1次月) */
    @ApiModelProperty("回执日期是否和结算月为同月(-1上月，0同月,1次月)")
    private Integer ackWithSameMonth;

    /** 回执截止日期 */
    @ApiModelProperty("回执截止日期")
    private String ackEndDate;

    /** 合同影像件URL */
    @ApiModelProperty("合同影像件URL")
    private List<ContractFileForm> contractFiles;

    /** 是否主协议 */
    @ApiModelProperty("是否主协议")
    private Long isMaster;

    /** 主协议主键(如为附加协议) */
    @ApiModelProperty("主协议主键(如为附加协议)")
    private Long masterContractId;

    @ApiModelProperty("协议下产品id集合")
    private Long[] insIds;

    @ApiModelProperty("协议机构id集合")
    private Long[] orgIds;

}
